// Tetromino.h
#ifndef TETROMINO_H
#define TETROMINO_H

#include <vector>
#include <windows.h>
#include <chrono>

const int GRID_HEIGHT = 25; // 高度，代表 500 像素
const int GRID_WIDTH = 20; // 宽度
extern int grid[GRID_HEIGHT][GRID_WIDTH]; // 0 表示空，1 表示已固定方块
extern COLORREF colors[GRID_HEIGHT][GRID_WIDTH]; // 网格颜色信息
extern int score;

class Tetromino {
public:
    Tetromino();
    void Rotate();
    void Move(int dx, int dy);
    void DrawGrid(HDC hdc);
    void Draw(HDC hdc);
    void UpdateScore(int linesCleared); // 更新得分
    bool IsAtTop();
    bool IsAtBottom(); // 判断是否到达底部
    int ClearFullLines();

    std::vector<std::vector<int>> shape; // 方块形状
    int x, y; // 方块位置
    COLORREF color; // 方块颜色
    std::chrono::steady_clock::time_point lastDropTime; // 用于记录最后一次下降的时间
    bool isPaused = false; // 新增的状态变量

};

#endif // TETROMINO_H